﻿using SimpleConnection_UDP_WIN.extension_class.utils;
using SimpleConnection_UDP_WIN.interface_class;
using SimpleConnection_UDP_WIN.utils;
using SimpleConnection_UDP_WIN.utils.UDP;
using System.Windows.Forms;
using WindowsImageCompressionApp.utils;

namespace SimpleConnection_UDP_WIN.extension_class.hidden
{
    internal class OpenLinkClass : PluginAbstractClass, PluginBaseInfoInterface
    {


        //传入命令的关键协议名，如 协议名为 a ， 那么这个类只能接受  a://这种协议
        public const string Protocol = "openlink";

        //必须保留空构造
        public OpenLinkClass()
        {
        }
        //必须拥有传入 消息的构造
        public OpenLinkClass(string message, string ip, int port) : base(message, ip, port)
        {
            this.message = message;
            this.ip = ip;
            this.port = port;

        }

        //插件的 各种信息
        public string Name => "打开链接类";
        public string Describe => "通过系统自带浏览器打开链接";
        public string Version => "1.0.1";
        public string Help => "openlink://<string>https://www.baidu.com/</string>";

        /// <summary>
        /// 主要执行方法，在此处 可以调用 MessageParsingClass 的方法来帮助解析 message
        /// </summary>
        public void exec()
        {
            //判断是否验证了密码
            if (MessageParsingClass.isAdmin(message))
            {
                if (MessageParsingClass.getKey(message).Equals("1"))
                {
                    DialogResult result = MessageBox.Show($"确定要打开链接{MessageParsingClass.getString(message)}吗？", "打开链接", MessageBoxButtons.OKCancel);

                    if (result == DialogResult.OK)
                    {
                        // 用户点击了确定按钮，执行相应的操作
                        DBUtil.openLink(MessageParsingClass.getString(message));
                    }

                }
                else
                {
                    DBUtil.openLink(MessageParsingClass.getString(message));
                }

                //返回给 它 的信息，默认发送到 8871
                new UdpTool(ip, 8871).SendMessage(GetType().Name, $"已打开链接：{MessageParsingClass.getString(message)}");
                SoundUtil.playReminderTone();
            }
        }

    }
}
